The Semantics of C++ Data Types: Towards Verifying low-level System Components
نویسندگان
چکیده
In order to formally reason about low-level system programs one needs a semantics (for the programming language in question) that can deal with programs that are not statically type-correct. For system-level programs, the semantics must deal with such heretical constructs like casting integers to pointers and converting pointers between incompatible base types. In this paper we describe a formal semantics for the data types of the C++ programming language that is suitable for low-level programs in the above sense. This work is part of a semantics for a large subset of the C++ programming language developed in the VFiasco project. In the VFiasco project we aim at the verification of substantial properties of the Fiasco microkernel, which is written in C++.
منابع مشابه
Refinement Through Restraint: Bringing Down the Cost of Verification
We present a framework aimed at significantly reducing the cost of verifying certain classes of systems software, such as file systems. Our framework allows for equational reasoning about systems code written in our new language, Cogent. Cogent is a restricted, polymorphic, higher-order, and purely functional language with linear types and without the need for a trusted runtime or garbage colle...
متن کاملOn the Use of Underspecified Data-Type Semantics for Type Safety in Low-Level Code
In recent projects on operating-system verification, C and C++ data types are often formalized using a semantics that does not fully specify the precise byte encoding of objects. It is well-known that such an underspecified data-type semantics can be used to detect certain kinds of type errors. In general, however, underspecified data-type semantics are unsound: they assign well-defined meaning...
متن کاملLexical Semantics and Selection of TAM in Bantu Languages: A Case of Semantic Classification of Kiswahili Verbs
The existing literature on Bantu verbal semantics demonstrated that inherent semantic content of verbs pairs directly with the selection of tense, aspect and modality formatives in Bantu languages like Chasu, Lucazi, Lusamia, and Shiyeyi. Thus, the gist of this paper is the articulation of semantic classification of verbs in Kiswahili based on the selection of TAM types. This is because the sem...
متن کاملTowards a quantum programming language
The field of quantum computation suffers from a lack of syntax. In the absence of a convenient programming language, algorithms are frequently expressed in terms of hardware circuits or Turing machines. Neither approach particularly encourages structured programming or abstractions such as data types. In this paper, we describe the syntax and semantics of a simple quantum programming language. ...
متن کاملLolisa: Formal Syntax and Semantics for a Subset of the Solidity Programming Language
This article presents the formal syntax and semantics for a large subset of the Solidity programming language developed for the Etheruem blockchain platform. This subset is denoted as Lolisa, which, to our knowledge, is the first mechanized and validated formal syntax and semantics developed for Solidity. The formal syntax of Lolisa adopts a stronger static type system than Solidity for enhance...
متن کامل